]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agopopupMenu: Close when source actor gets hidden
Florian Müllner [Tue, 17 Dec 2019 00:01:13 +0000 (01:01 +0100)]
popupMenu: Close when source actor gets hidden

If a menu is anchored to a source actor, it is odd to leave it floating
around when the source actor gets hidden.

Close the menu instead in that case.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2002

6 years agopanel: Disable menu-toggle shortcuts while top bar is hidden
Florian Müllner [Tue, 17 Dec 2019 00:00:40 +0000 (01:00 +0100)]
panel: Disable menu-toggle shortcuts while top bar is hidden

We currently handle the case where the indicator itself is disabled
(read: hidden), but not when the entire top bar is invisible (for
instance when the primary monitor is in fullscreen state).

It is odd to pop up a top bar menu without the top bar, so check for
the indicator's mapped- instead of visible state.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2002

6 years agoextension-tool: Don't treat missing .js handler as error
Chuck [Thu, 19 Dec 2019 19:00:51 +0000 (11:00 -0800)]
extension-tool: Don't treat missing .js handler as error

After creating a new extension, we try to open the main source
file with the default handler, which fails when there is none.

But given that the extension was created successfully, don't treat
a missing handler as failure, and print the path to the new extension
instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/905

6 years agoappFavorites: unbreak my previous commits
Michael Catanzaro [Fri, 20 Dec 2019 13:59:53 +0000 (13:59 +0000)]
appFavorites: unbreak my previous commits

Oops, apparently even a trivial commit is too hard for me to do without CI.

6 years agoUpdate desktop IDs of favorite apps
Michael Catanzaro [Fri, 20 Dec 2019 13:53:12 +0000 (13:53 +0000)]
Update desktop IDs of favorite apps

Epiphany and Evolution updated their desktop IDs years ago. I assume the
rename list in appFavorites.js ensures this is still working properly
despite the obsolete names.

6 years agoappFavorites: add seahorse to rename list
Michael Catanzaro [Fri, 20 Dec 2019 13:49:07 +0000 (13:49 +0000)]
appFavorites: add seahorse to rename list

6 years agoextensions-tool: Set up translations for standalone builds
Florian Müllner [Tue, 3 Dec 2019 02:02:30 +0000 (03:02 +0100)]
extensions-tool: Set up translations for standalone builds

While we can now build gnome-extensions-tool as stand-alone project,
we are currently missing any translations, as those are part of
gnome-shell.

The easiest option for addressing this would be to symlink the toplevel
po directory into the subproject, however that would mean duplicating
the entire gnome-shell message catalogs.

So instead, set up a bare po directory and provide a script to populate
it from the translations in the toplevel po directory.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/877

6 years agoextensions-tool: Add (back) README.md
Florian Müllner [Tue, 3 Dec 2019 00:58:19 +0000 (01:58 +0100)]
extensions-tool: Add (back) README.md

This was dropped when importing the project into gnome-shell. Now
that is a bit more separate again, it makes sense to add it back.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/877

6 years agoextensions-tool: Move to a subproject
Florian Müllner [Mon, 2 Dec 2019 23:07:01 +0000 (00:07 +0100)]
extensions-tool: Move to a subproject

The gnome-extensions tool code is really independent from the rest of the
code base, and could be used either as part of the gnome-shell build or as
stand-alone project (for example for the extension-ci docker image).

We can actually support both cases by moving the code to a subproject.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/877

6 years agobuild: Remove left-over file
Florian Müllner [Mon, 2 Dec 2019 23:43:08 +0000 (00:43 +0100)]
build: Remove left-over file

The file was generated when importing gnome-extensions-tool from
a standalone repository. It isn't used by the build system, and
really shouldn't have ended up in the repository at all.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/877

6 years agodoap: Add Georges Stavracas as a maintainer
Georges Basile Stavracas Neto [Wed, 18 Dec 2019 18:24:38 +0000 (15:24 -0300)]
doap: Add Georges Stavracas as a maintainer

Looks like he's is working too much in this module, and received
permission from Florian to add himself as a maintainer.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/901

6 years agoStPasswordEntry: Add the peek-password-icon for show/hide passwords
Umang Jain [Tue, 10 Dec 2019 19:05:10 +0000 (00:35 +0530)]
StPasswordEntry: Add the peek-password-icon for show/hide passwords

Also introduce a "show-peek-icon" property to enable/disable
the peek-password-icon in the password entry. This is useful
in cases where the peeking the password functionality needs
to be avoided.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agost-entry: Remove caps-lock feedback warning
Umang Jain [Fri, 13 Dec 2019 12:37:57 +0000 (18:07 +0530)]
st-entry: Remove caps-lock feedback warning

This frees the entry's secondary icon that for other uses.
Caps-lock-warning feedback has been moved to be shown in
the various dialogs instead in the password-entries itself.
StPasswordEntry can now use a peek-password icon as the
secondary icon to show/hide the password present in the
entry.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agojs: Add caps-lock Warning to the dialogs
Umang Jain [Tue, 17 Dec 2019 20:03:45 +0000 (01:33 +0530)]
js: Add caps-lock Warning to the dialogs

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agoshellEntry: Add CapsLockWarning class
Umang Jain [Fri, 13 Dec 2019 08:06:14 +0000 (13:36 +0530)]
shellEntry: Add CapsLockWarning class

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agoshellEntry: Remove isPassword Property
Umang Jain [Mon, 16 Dec 2019 18:41:49 +0000 (00:11 +0530)]
shellEntry: Remove isPassword Property

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agojs: Use StPasswordEntry for password entry fields
Umang Jain [Thu, 12 Dec 2019 09:32:53 +0000 (15:02 +0530)]
js: Use StPasswordEntry for password entry fields

Use the new StPasswordEntry for password entry fields
and remove all direct handling of clutter text of the entry
 via clutter_text_set_password_char to show/hide the password
text. StPasswordEntry will provides a peek-password-icon which
will allow to show/hide the password present in the field to
the user in subsequent commits.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agoshellEntry: Handle PasswordEntries automatically
Umang Jain [Thu, 12 Dec 2019 09:08:42 +0000 (14:38 +0530)]
shellEntry: Handle PasswordEntries automatically

shellEntry should not need to query the clutter-text directly
in order to know if the entry is for passport-input purpose.
shellEntry can easily determine a password-entry by querying
if it is an instance of StPasswordEntry and use it's API
whereever relevant.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agoSt: Add a StPasswordEntry subclass based on StEntry
Umang Jain [Tue, 12 Nov 2019 13:14:17 +0000 (18:44 +0530)]
St: Add a StPasswordEntry subclass based on StEntry

StPasswordEntry will be put to use for password entries
in various shell dialogs. This is done to have a consistent
behaviour for all password entries and introduce a peek
password functionality for these password entries in the
subsequent commits.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619

6 years agopadOsd: Re-query action labels after mode switches
Carlos Garnacho [Mon, 16 Dec 2019 11:39:49 +0000 (12:39 +0100)]
padOsd: Re-query action labels after mode switches

Do this so the pad OSD is able to update dynamically to mode changes,
showing immediately the new actions for the current mode(s).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/898

6 years agoworkspace: Pass device to startDrag()
Carlos Garnacho [Fri, 13 Dec 2019 17:14:51 +0000 (18:14 +0100)]
workspace: Pass device to startDrag()

This is necessary to make DnD operations work from tablet devices on
wayland, as it's not the same onscreen pointer sprite than mice. Fixes
window DnD in the overview on tablet devices, no longer having them stick
to the wrong pointer.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/897

6 years agoshell-app: Add discrete GPU support for NVidia drivers
Bastien Nocera [Thu, 24 Oct 2019 12:39:25 +0000 (14:39 +0200)]
shell-app: Add discrete GPU support for NVidia drivers

Use data from switcheroo-control to know which environment variables
to use to launch an application on the discrete GPU. switcheroo-control
version 2.0 or newer should be installed on Linux platforms.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1810
6 years agoshell: Prime the GPUs property cache for switcheroo-control
Bastien Nocera [Tue, 3 Dec 2019 21:32:23 +0000 (22:32 +0100)]
shell: Prime the GPUs property cache for switcheroo-control

See: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/781

6 years agoshell: Add API to access switcheroo-control D-Bus proxy
Bastien Nocera [Tue, 3 Dec 2019 11:07:54 +0000 (12:07 +0100)]
shell: Add API to access switcheroo-control D-Bus proxy

See: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/781

6 years agomain: Add switcheroo-control generated code
Bastien Nocera [Wed, 6 Nov 2019 12:02:27 +0000 (13:02 +0100)]
main: Add switcheroo-control generated code

See: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/781

6 years agodata: Update switcheroo-control D-Bus interface
Bastien Nocera [Thu, 12 Dec 2019 17:19:29 +0000 (18:19 +0100)]
data: Update switcheroo-control D-Bus interface

It's backwards compatible, so just new properties.

See: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/781

6 years agoappDisplay: Remove unimplemented 'activate-discrete-gpu'
Bastien Nocera [Mon, 21 Oct 2019 10:48:43 +0000 (12:48 +0200)]
appDisplay: Remove unimplemented 'activate-discrete-gpu'

It was added in commit 009d021 but not advertised, and likely not used
by an application since then.

See: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/781

6 years agoBump version to 3.35.2
Florian Müllner [Wed, 11 Dec 2019 00:07:31 +0000 (01:07 +0100)]
Bump version to 3.35.2

Update NEWS.

6 years agoutil: Place spawned processes into a systemd scope
Benjamin Berg [Wed, 27 Nov 2019 15:35:45 +0000 (16:35 +0100)]
util: Place spawned processes into a systemd scope

This improves the separation from the shell for applications launched
with Alt+F2 and in a few other cases.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/863

6 years agoshell-global: Place launched applications into a systemd scope
Benjamin Berg [Tue, 26 Nov 2019 18:45:29 +0000 (19:45 +0100)]
shell-global: Place launched applications into a systemd scope

This improves separation from the shells service scope for applications
launched using an XDG desktop file.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/863

6 years agoweather: Only require auto-location authorization if sandboxed
Florian Müllner [Wed, 27 Nov 2019 22:01:15 +0000 (23:01 +0100)]
weather: Only require auto-location authorization if sandboxed

Since commit 87e60ed97843, geoclue no longer pretends that authorization
is useful for system-installed apps (as they can easily lie about their
ID). Unfortunately this broke our auto-location support in case Weather
is installed non-sandboxed, as we are waiting for an authorization that
will never happen.

Unbreak it by only requiring authorization when installed as Flatpak.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1823

6 years agomagnifier: Adapt to painting and picking API change
Robert Mader [Fri, 6 Dec 2019 19:10:58 +0000 (20:10 +0100)]
magnifier: Adapt to painting and picking API change

This was left out in 988a0e7314018

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/891

6 years agoscreenShield: Adapt to painting and picking API change
Robert Mader [Fri, 6 Dec 2019 18:57:37 +0000 (19:57 +0100)]
screenShield: Adapt to painting and picking API change

This was apparently forgotten in 988a0e7314018, causing the warning:
`JS ERROR: Error: Too few arguments to method Clutter.Actor.paint`

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/891

6 years agopopupMenu: Close when a system modal pops up
Florian Müllner [Fri, 6 Dec 2019 17:07:35 +0000 (18:07 +0100)]
popupMenu: Close when a system modal pops up

Just like switcher popups, popup menus don't play well together with
system modals, and generally have a lower priority. So just like
switcher popups, close popup menus when a system modal dialog pops
up.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1536

6 years agoswitcherPopup: Dismiss when a system modal dialog opens
Florian Müllner [Fri, 6 Dec 2019 12:56:24 +0000 (13:56 +0100)]
switcherPopup: Dismiss when a system modal dialog opens

As system modal dialogs may open without user interaction (for instance
polkit or network agent requests), it is possible for them to pop up
while the app/window switcher is up.

The current result of having both up simultaneously is clearly broken,
so we can either dismiss the popup or prevent the modal dialog from
opening. Assume that the dialog indicates a more important action and
should therefore take precedence, so go with the former.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1536

6 years agoperf-helper: Remove unused atoms
Florian Müllner [Thu, 5 Dec 2019 12:29:38 +0000 (13:29 +0100)]
perf-helper: Remove unused atoms

Those aren't used for anything, but make the helper dependent on X11.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/887

6 years agoperf-helper: Add content for custom drawing
Florian Müllner [Thu, 5 Dec 2019 13:12:47 +0000 (14:12 +0100)]
perf-helper: Add content for custom drawing

Drawing windows got a lot more involved with the advent of client-side
decorations. Instead of accounting for visible and invisible borders,
titlebar and shadows when necessary, just add an empty child for the
custom drawing.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/887

6 years agoappDisplay: Rename _allItems array to _orderedItems
Jonas Dreßler [Thu, 31 Oct 2019 23:44:02 +0000 (00:44 +0100)]
appDisplay: Rename _allItems array to _orderedItems

Since both the `_items` object and the `_allItems` array include the
same items, the difference between those variables seems unclear. The
real difference between them (except the different data type) is that
`_allItems` is ordered in the same order as the visible grid, so rename
`_allItems` to `_orderedItems` which makes that more obvious.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/799

6 years agoappDisplay: Make AllViews folderIcons property private
Jonas Dreßler [Thu, 5 Dec 2019 13:06:48 +0000 (14:06 +0100)]
appDisplay: Make AllViews folderIcons property private

This property is not used anywhere outside the class, make it private.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/799

6 years agoappDisplay: Make _items object a Map
Jonas Dreßler [Thu, 31 Oct 2019 23:46:35 +0000 (00:46 +0100)]
appDisplay: Make _items object a Map

Use a Map instead of an Object here makes it easier to loop through
keys, which we're going to do in the next commit.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/799

6 years agoappDisplay: Use _getCategories function instead of duplicating the code
Jonas Dreßler [Thu, 31 Oct 2019 23:19:38 +0000 (00:19 +0100)]
appDisplay: Use _getCategories function instead of duplicating the code

We already have a function which gets the categories of an app and
handles the null-return case, use it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/799

6 years agocheckBox: Fix expand and align properties
Jonas Dreßler [Wed, 4 Dec 2019 20:37:34 +0000 (21:37 +0100)]
checkBox: Fix expand and align properties

In f2bd39b20c89c1896c124f1dccdd587aa544e45c, the expand property for
checkboxes was accidentally set to the grandchild (the StBin), instead
of the child (the StBoxLayout) of the StButton. Fix that and let the
BoxLayout expand instead of the Bin.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/885

6 years agoextensionPrefs: Always redefine getCurrentExtension() on prefsModule access
Florian Müllner [Sat, 30 Nov 2019 18:15:14 +0000 (19:15 +0100)]
extensionPrefs: Always redefine getCurrentExtension() on prefsModule access

We have three interactions with an extension's prefs module:
 - we import the module
 - we call its init() hook
 - we call its buildPrefsWidget() hook

The first two are one-time actions where we expect most getCurrentExtension()
calls (local imports, initTranslations() etc.).

However it's still possible that the extension will use the utility function
in buildPrefsWidget() as well, either directly or via other functions like
getSettings(): Make sure getCurrentExtension() returns the correct extension
in that case, not the last one whose preferences were initialized.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/873

6 years agoextensionPrefs: Simplify state change handling
Florian Müllner [Sat, 30 Nov 2019 05:01:44 +0000 (06:01 +0100)]
extensionPrefs: Simplify state change handling

The new `ExtensionStateChanged` signal already passes the changed
extension object, no need to request it again with `GetExtensionInfo`.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/873

6 years agoappDisplay: Move to rename folder location
Georges Basile Stavracas Neto [Wed, 4 Dec 2019 20:10:40 +0000 (17:10 -0300)]
appDisplay: Move to rename folder location

Following the same reasoning of the previous commit, move to
the renamed folder location.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/883

6 years agoappDisplay: Show newly created folder when creating
Georges Basile Stavracas Neto [Wed, 4 Dec 2019 20:09:10 +0000 (17:09 -0300)]
appDisplay: Show newly created folder when creating

The icon grid currently sorts icons by their names. When creating new
folders, the folder may end up being in a different page, and that's
confusing since we don't actually move to where the new folder is.

Move the icon grid to the newly created folder.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/883

6 years agocloseDialog: Fix scale of dialog for x11 clients in Wayland sessions
Jonas Dreßler [Wed, 4 Dec 2019 20:23:20 +0000 (21:23 +0100)]
closeDialog: Fix scale of dialog for x11 clients in Wayland sessions

We missed this case in b6e57a5ae8e3871161e2bdcc44e46af1cc56b2f7,
XWayland clients obviously don't use MetaWindowWayland and thus they
don't apply the double scaling that commit was meant to fix.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/884

6 years agokeyboard: Update extended key size on parent size changes
Florian Müllner [Wed, 4 Dec 2019 18:49:17 +0000 (19:49 +0100)]
keyboard: Update extended key size on parent size changes

Extended keys should have the same size as their parent key, so
make sure to update them when the parent size changes.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agokeyboard: Use parent key's allocation for extended key size
Florian Müllner [Wed, 4 Dec 2019 18:48:36 +0000 (19:48 +0100)]
keyboard: Use parent key's allocation for extended key size

An outdated allocation is likely still better in this case than the
preferred size, so use that instead of width/height which may fall
back.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agokeyboard: Create extended keys before updating hover state
Florian Müllner [Wed, 4 Dec 2019 19:01:41 +0000 (20:01 +0100)]
keyboard: Create extended keys before updating hover state

We want extended keys to have the same size as their parent key,
but this is currently broken and the keys end up with their
parent key's preferred size (which is smaller than its allocated
size).

This is due to the way ClutterActor's width/height properties work,
which only return the "real" (i.e. allocated) size when the allocation
is valid, and fall back to the preferred size otherwise.

As changing an StWidget's hover state involves adding or removing
the `:hover` pseudo class, this is currently always the case.
Creating the extended keys first means the keyButton's allocation
is probably valid, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agokeyboard: Fix widget leak
Florian Müllner [Wed, 4 Dec 2019 18:02:33 +0000 (19:02 +0100)]
keyboard: Fix widget leak

We currently create an extended-keys popup every time it is requested,
but only destroy it (or rather: the last one) when the keyboard itself
is destroyed.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agokeyboard: Use camelCase
Florian Müllner [Wed, 4 Dec 2019 17:51:08 +0000 (18:51 +0100)]
keyboard: Use camelCase

Those aren't GObject properties, so should follow the regular JS style.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agokeyboard: Reindent timeout handlers
Florian Müllner [Wed, 4 Dec 2019 19:40:07 +0000 (20:40 +0100)]
keyboard: Reindent timeout handlers

We are going to touch some of the code, so take that opportunity
to move them to the new indentation style.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1976

6 years agoHACKING.md: Update sample code to use paint context
Jonas Ådahl [Thu, 28 Nov 2019 10:19:27 +0000 (11:19 +0100)]
HACKING.md: Update sample code to use paint context

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/827

6 years agoUse paint and pick context to get framebuffer
Jonas Ådahl [Fri, 22 Nov 2019 17:36:17 +0000 (18:36 +0100)]
Use paint and pick context to get framebuffer

Mutter and Clutter was changed to pass around the current target
framebuffer via the paint context instead of via the deprecated Cogl
framebuffer stack.

The framebuffer stack has also been removed from Cogl so change to use
the one in the paint context instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/827

6 years agoAdapt to painting and picking API change
Jonas Ådahl [Fri, 22 Nov 2019 17:35:55 +0000 (18:35 +0100)]
Adapt to painting and picking API change

While still leaving them unused, pass around ClutterPaintContext and
ClutterPickContext when painting and picking.

The reason for splitting this change up in two is to make it possible to
bisect easier in between the API change and the change to using the
framebuffer passed around with the temporary contexts.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/827

6 years agost: Remove broken parsing of @media rules
Federico Mena Quintero [Tue, 3 Dec 2019 01:57:08 +0000 (19:57 -0600)]
st: Remove broken parsing of @media rules

This code didn't even pay attention to the
cur_stmt->kind.media_rule->media_list, and unconditonally considered
each statement in the ->ruleset to be of kind ruleset.  That seems
broken.

(The theme doesn't use any @media queries, and they are unsupported
anyway.)

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1979

6 years agoFix always-true condition
Federico Mena Quintero [Mon, 2 Dec 2019 14:02:32 +0000 (08:02 -0600)]
Fix always-true condition

CrCascadePrivate->sheets is a statically-sized array inside the
struct; it can't be NULL.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/861#note_659216

6 years agocr-rgb: remove handling of "inherit" and "transparent"
Federico Mena Quintero [Fri, 22 Nov 2019 00:33:14 +0000 (18:33 -0600)]
cr-rgb: remove handling of "inherit" and "transparent"

st-theme-node.c already handles those by itself.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoHandle "color: inherit" directly in get_color_from_term(), not in libcroco
Federico Mena Quintero [Fri, 22 Nov 2019 00:30:03 +0000 (18:30 -0600)]
Handle "color: inherit" directly in get_color_from_term(), not in libcroco

The idea is to move handling of "inherit" as early in the parsing as possible.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoUse get_color_from_term() instead of get_background_color_from_term()
Federico Mena Quintero [Fri, 22 Nov 2019 00:24:32 +0000 (18:24 -0600)]
Use get_color_from_term() instead of get_background_color_from_term()

The former already checks for term_is_transparent() as its first
thing.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoSimplify if statement
Federico Mena Quintero [Thu, 21 Nov 2019 23:02:37 +0000 (17:02 -0600)]
Simplify if statement

And make the end of st_theme_node_lookup_length() consistent with
st_theme_node_lookup_color() and st_theme_node_lookup_shadow().

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoget_length_internal() - remove unused argument 'suffixed'
Federico Mena Quintero [Thu, 21 Nov 2019 22:59:59 +0000 (16:59 -0600)]
get_length_internal() - remove unused argument 'suffixed'

It was passed as NULL in the single caller of this function.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoInclude the libcroco sources directly under src/st/croco
Federico Mena Quintero [Thu, 21 Nov 2019 20:24:02 +0000 (14:24 -0600)]
Include the libcroco sources directly under src/st/croco

This is all of the original libcroco, minus these two which we don't use:

  - cr-sel-eng - the CSS selection engine for xmlNode.
  - cr-style.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/issues/1934

6 years agoswitcherPopup: Fix scrollable check
Florian Müllner [Fri, 29 Nov 2019 00:11:16 +0000 (01:11 +0100)]
switcherPopup: Fix scrollable check

When commit c6cea277e replaced Shell.GenericContainer, the check
whether the required width exceeds the avilable width was changed
from using the minimum widths of items to the natural width of the
scroll view.

That doesn't work correctly, as the *natural* width may well exceed
the actually used width: SwitcherList bases its width request on
children's minimum sizes to force labels to ellipsize.

Fix this by using the minimum width of the scroll view's child instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1834

6 years agocalendar-server: Use correct timezone for all-day events
Florian Müllner [Thu, 28 Nov 2019 00:23:36 +0000 (01:23 +0100)]
calendar-server: Use correct timezone for all-day events

Since commit 28c535e34, we use the timezone associated with the ICalTime
instead of the default timezone when converting to time_t. However while
that is correct for most events, for ICalTimes that don't have a timezone
associated we still want to fall back to the default timezone instead of
UTC.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1895

6 years agotheme: Add light styling to message buttons
Joonas Henriksson [Tue, 26 Nov 2019 23:20:31 +0000 (01:20 +0200)]
theme: Add light styling to message buttons

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/865

6 years agoappIcon: Draw running dot above the overview icon
Joonas Henriksson [Wed, 27 Nov 2019 00:13:24 +0000 (02:13 +0200)]
appIcon: Draw running dot above the overview icon

Prevent the app-well-app-running dot from getting unintentionally
hidden behind the overview-icon background by initializing the
running-dot after its sibling overview-icon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/866

6 years agofileUtils: Delete deleteGFile hack
Florian Müllner [Mon, 25 Nov 2019 21:54:44 +0000 (22:54 +0100)]
fileUtils: Delete deleteGFile hack

It is true that delete is a javascript keyword, but that doesn't
prevent it from being used as method name - there are event built-in
types like Map or Set with delete() methods!

So if that hack was ever needed, this hasn't been the case for years
now; just removed the hack now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/862

6 years agoUpdate Brazilian Portuguese translation
Ricardo Silva Veloso [Tue, 26 Nov 2019 19:58:38 +0000 (19:58 +0000)]
Update Brazilian Portuguese translation

6 years agotexture-cache: Remove also scaled keys from the cache
Daniel García Moreno [Tue, 26 Nov 2019 07:28:21 +0000 (08:28 +0100)]
texture-cache: Remove also scaled keys from the cache

We're storing in the texture cache images and scaled images appending
the scaling factor to the key. When a file changes the cache key
corresponding to that file is removed, but not the keys for the scaled
ones so that images in the cache are never reloaded.

This patch removes all keys from the cache related to the file that
changes, including those with the scaling factor.

A new set (hash table) was added to keep track of scale used to be able
to remove all possible images in the cache.

When the KEY is removed from the cache, we can look now in the scale set
for and each scale we also remove the key "KEY1.000000", "KEY2.000000",
etc.

Assuming that the number of used scales is small (I would typically
expect one or two), the overhead should be negligible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/567

6 years agodata: Enable clean session shutdown after gnome-shell failure
Benjamin Berg [Mon, 25 Nov 2019 14:15:01 +0000 (15:15 +0100)]
data: Enable clean session shutdown after gnome-shell failure

If the GNOME shell crashes, we run a service that may disable
extensions. This is important so that users will not be locked out of
their own session in case an extension is causing crashes.

As this is a very agressive action, we tried to only do this in the
first two minutes of the session. Unfortunately, the logic was broken
and would result in an unclean session shutdown.

Fix this by using the newly introduced gnome-shell-disable-extensions
file. This is created by the extension subsystem for a period of time to
indicate the extensions may be the cause of a gnome-shell failure.

See
  https://gitlab.gnome.org/GNOME/gnome-session/issues/43
for a log of the bug happening and the gnome-session part to fix this.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/858

6 years agoextensionSystem: Create a file to flag that extensions are being loaded
Benjamin Berg [Mon, 25 Nov 2019 20:20:02 +0000 (21:20 +0100)]
extensionSystem: Create a file to flag that extensions are being loaded

When the extension system is loaded, create the
gnome-shell-disable-extensions file in the users runtime directory. This
file is automatically removed 60s later. The sole purpose of this file
is to be consumed by the systemd units. If the file exists, the systemd
units will disable extensions when the gnome-shell fails.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/858

6 years agoUpdate Greek translation
Efstathios Iosifidis [Mon, 25 Nov 2019 19:20:20 +0000 (19:20 +0000)]
Update Greek translation

6 years agointrospect: Fix whitelist check
Florian Müllner [Mon, 25 Nov 2019 18:44:10 +0000 (19:44 +0100)]
introspect: Fix whitelist check

The whitelist is a list of well-known D-Bus names, which we then search
for the unique name we get from the method invocation - unsuccesfully.

Fix this by watching the bus for any name in the whitelist in order
to maintain a map from wel-known to unique name that we can use for
matching.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1916

6 years agotheme: Add :active styling to message-close and media control buttons
Joonas Henriksson [Sun, 24 Nov 2019 18:44:47 +0000 (20:44 +0200)]
theme: Add :active styling to message-close and media control buttons

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/855

6 years agotheme: Add message close button styling
Joonas Henriksson [Tue, 19 Nov 2019 17:40:09 +0000 (19:40 +0200)]
theme: Add message close button styling

Since the notification message close button had no border, or mouse
over effect, there was no way to determine whether the mouse cursor
were over the button.

Improve this by adding a message-close-button class for the close
button, and a styling for its hovered state, based on media control
button styling.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/855

6 years agotheme: Darken hovered message-media-control button
Joonas Henriksson [Sat, 23 Nov 2019 10:50:27 +0000 (12:50 +0200)]
theme: Darken hovered message-media-control button

Increases contrast between normal and hovered states in
message-media-control buttons. Previously there was very little
difference between the two states, making it hard to distinguish
whether the mouse cursor was over the button.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/855

6 years agoextensions-tool: Fix removing from settings list
Florian Müllner [Mon, 25 Nov 2019 00:49:04 +0000 (01:49 +0100)]
extensions-tool: Fix removing from settings list

When removing a string from a settings list, we iterate over all
existing entries and copy all strings except the one that's being
removed to a new list, which is then written to GSettings.

However we currently always increment the index, so we end up with
a NULL entry in place of the removed entry, which is then interpreted
as the end of the list. In other words, we also remove all entries
that follow the removed string.

Fix this by looping over the list entries instead of the index, and
only increment the index for entries we copy.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1946

6 years agoappDisplay: Add a timeout when switching pages during DnD
Jonas Dreßler [Sat, 23 Nov 2019 21:25:00 +0000 (22:25 +0100)]
appDisplay: Add a timeout when switching pages during DnD

Currently when dragging an icon to the space above or below the appGrid
to switch pages, we do so very quickly without checking when the last
page-switch happened. This makes it hard to move icons to pages which
are not the first or the last one, since the other pages are skipped
very quickly.

To fix this, add a timeout of 1 second that blocks switching pages after
a page-switch using drag overshoot occured.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1693

6 years agoappDisplay: Add threshold after overshoot page switches
Florian Müllner [Sat, 23 Nov 2019 14:06:14 +0000 (15:06 +0100)]
appDisplay: Add threshold after overshoot page switches

We currently always switch app pages when a dragged app icon
moves outside the grid boundaries, regardless of any previous
page switches. This makes it too easy to switch multiple pages
accidentally, so add a small threshold that the icon has to
move back towards the grid before allowing another page switch.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1693

6 years agoappDisplay: Simplify event blocking while folder is opened
Jonas Dreßler [Sat, 23 Nov 2019 20:11:14 +0000 (21:11 +0100)]
appDisplay: Simplify event blocking while folder is opened

There's no need for a `inhibitEventBlocker` interface. Since we connect
to "open-state-changed" of our folders in the AllView anyway, we can
just make the event blocker visible while a folder is opened, and hide
the event blocker during DnD.

This allows keeping the eventBlocker reactive at all times and fixes an
issue where DnD to create a new folder is impossible if no folders are
present because the eventBlocker would not get inhibited.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1652

6 years agovolume: Skip volume-change feedback while playing
Florian Müllner [Fri, 22 Nov 2019 17:37:25 +0000 (18:37 +0100)]
volume: Skip volume-change feedback while playing

The audio feedback for volume changes is useful when nothing is outputting
sound, but only then. Skip the sound notification in that case.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53

6 years agogvc: Update submodule
Florian Müllner [Fri, 22 Nov 2019 17:37:25 +0000 (18:37 +0100)]
gvc: Update submodule

gnome-volume-control now has API to expose the stream state, which
we will need in the following commit.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53

6 years agoslider: Stop emulating drags in key handling
Florian Müllner [Mon, 26 Feb 2018 19:57:10 +0000 (20:57 +0100)]
slider: Stop emulating drags in key handling

Emitting ::drag-end after changing the slider value via arrow keys
was a cheap way to make the sound feedback work for keyboard input.
But now that the volume indicator plays the sound on ::value-changed
as well, we can stop doing that - after all, key presses aren't drags.

Besides that, this will make the limiting of feedback to actual volume
changes from the previous commit work for key events as well.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53

6 years agovolume: Only emit sound feedback after volume changes
Florian Müllner [Fri, 23 Feb 2018 22:58:22 +0000 (23:58 +0100)]
volume: Only emit sound feedback after volume changes

gnome-settings-daemon doesn't play the volume change sound when
the volume stayed the same (that is, it is already at its maximum
or minimum). This looks like the right thing to do, so copy its
behavior.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53

6 years agovolume: Add back sound feedback on scroll
Florian Müllner [Fri, 23 Feb 2018 22:58:22 +0000 (23:58 +0100)]
volume: Add back sound feedback on scroll

Commit 8d4855f1008 accidentally removed the volume change feedback
for scroll events. Add it back to be consistent again with moving
the slider via arrow keys, slider drags/clicks and gsd's media keys
handling.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53

6 years agoappDisplay: Ensure we don't recreate existing AppIcons for folders
Jonas Dreßler [Sat, 23 Nov 2019 20:44:55 +0000 (21:44 +0100)]
appDisplay: Ensure we don't recreate existing AppIcons for folders

This was missed in 910037f014355ee9680c45f82a4aac2891c4074f, make sure
we do the same thing for AppIcons that are created when reloading
folders.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/851

6 years agocleanup: Remove another pair of unneeded parentheses
Florian Müllner [Sat, 16 Nov 2019 16:14:38 +0000 (17:14 +0100)]
cleanup: Remove another pair of unneeded parentheses

Eslint didn't spot this before version 6.5, so this fell through
the cracks.

6 years agodateMenu: Don't ellipsize forecast times and temps
Florian Müllner [Wed, 20 Nov 2019 22:15:55 +0000 (23:15 +0100)]
dateMenu: Don't ellipsize forecast times and temps

While those should be concise enough to fit, they may not where
temperatures drop into double-digit negatives. It seems better
to accept some awkward horizontal scrolling in that case than
shorten relevant information.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1926

6 years agodateMenu: Move weather forecast validity check
Florian Müllner [Fri, 22 Nov 2019 22:27:47 +0000 (23:27 +0100)]
dateMenu: Move weather forecast validity check

Commit b779f6f728 added a check to filter out invalid weather forecasts.

However the check is currently done when creating UI for the forecasts,
which means we end up with fewer forecasts than we could display if any
forecasts are invalid.

We can avoid that issue by checking the validity while collecting the
forecasts, so do that instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Only show forecasts
Florian Müllner [Fri, 22 Nov 2019 21:44:42 +0000 (22:44 +0100)]
dateMenu: Only show forecasts

We currently always start with the current weather info, then append
forecasts. This is slightly confusing, as the only hint that the
first item is special is the past (and potentially "odd") time.

Stop doing that and base all items on forecasts.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Don't limit weather forecasts to the same day
Florian Müllner [Wed, 20 Nov 2019 22:23:50 +0000 (23:23 +0100)]
dateMenu: Don't limit weather forecasts to the same day

As we get closer to midnight, we show fewer forecasts than we could
fit, or none at all. It makes more sense to continue the forecasts
into the wee hours in that case, so only exclude past forecasts,
but not ones from following days.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Try harder finding a reasonable weather location name
Florian Müllner [Wed, 20 Nov 2019 21:15:26 +0000 (22:15 +0100)]
dateMenu: Try harder finding a reasonable weather location name

Weather stations can have unwieldy long names, which don't fit the
limited space we have available. City names are usually more suitable,
so use the name of the nearest city instead if possible.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Add some spacing between weather header and location
Florian Müllner [Wed, 20 Nov 2019 21:21:48 +0000 (22:21 +0100)]
dateMenu: Add some spacing between weather header and location

In case of a very long location name, the label may take up all
available space. Make sure there is at least some spacing between
header and location in that case.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Bottom-align weather title/location
Florian Müllner [Wed, 20 Nov 2019 20:48:03 +0000 (21:48 +0100)]
dateMenu: Bottom-align weather title/location

The two labels use different font sizes, so they don't align properly.
Unfortunately we don't have BASELINE alignment in Clutter, but at least
END comes closer than the default FILL.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agodateMenu: Re-indent weather section
Florian Müllner [Fri, 22 Nov 2019 14:41:19 +0000 (15:41 +0100)]
dateMenu: Re-indent weather section

Before making code changes, make sure the class confirms to the
new coding style.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

6 years agoswitcherPopup: Improve modifier-less keybinding navigation
Florian Müllner [Mon, 11 Nov 2019 21:00:01 +0000 (22:00 +0100)]
switcherPopup: Improve modifier-less keybinding navigation

Commit c899453800f11 lifted the requirement of switcher keybindings
to contain a modifier, however it is currently only possible to
finish it by letting it time out.

Improve that by also accepting space/enter key presses to confirm the
selection immediately.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1883

6 years agoswitcherPopup: Use roundtrip time when the popup is modifier-less
Jonas Dreßler [Fri, 22 Nov 2019 19:56:30 +0000 (20:56 +0100)]
switcherPopup: Use roundtrip time when the popup is modifier-less

The noModsTimeout obviously finishes inside a timeout callback, which
means `global.get_current_time()` might return Clutter.CURRENT_TIME (ie.
0) when called inside it, because it's not called while handling an
event. This means when switching apps or activating a window, the
timestamp passed to `activate_window` may be 0, which is the reason why
the altTab switcher is currently broken when using modifier-less
keybindings.

Fix that by using `meta_display_get_current_time_roundtrip`, which
always return a valid timestamp, instead of
`shell_global_get_current_time`.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/847

6 years agopageIndicators: Redesign and add position-based animation
Alexander Mikhaylenko [Thu, 21 Nov 2019 22:24:46 +0000 (03:24 +0500)]
pageIndicators: Redesign and add position-based animation

Remove setCurrentPage() function, introduce setCurrentPosition() instead,
which allows to have fractional positions.

Make inactive dots smaller, filled and partially transparent, as opposed to
larger and fully opaque active dot. Make dots smaller overall, remove
borders. Interpolate each dot between active and inactive state based on
scroll position.

Make it impossible to "uncheck" the active dot.

Thanks Florian Müllner for parts of the code.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1932

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/843